home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / asm_msc1.arc / EX511.ASM < prev    next >
Assembly Source File  |  1988-11-20  |  1KB  |  44 lines

  1. TITLE  Convert Hex to ASCII, BCD and EBCDIC (EX511.ASM)
  2.           PAGE      ,132
  3. DATA      SEGMENT   PARA 'DATA'
  4. ASCII  DB  '0123456789ABCDEF'
  5. BCD    DB  0,1,2,3,4,5,6,7,8,9,10H,11H,12H,13H,14H,15H
  6. EBCDIC DB  0F0H,0F1H,0F2H,0F3H,0F4H,0F5H,0F6H,0F7H
  7.        DB  0F8H,0F9H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H
  8. DATA      ENDS
  9. OUR_CODE  SEGMENT   PARA 'CODE'
  10.       PUBLIC    CONV_HEX
  11. CONV_HEX  PROC      FAR
  12.           ASSUME    CS:OUR_CODE,DS:DATA
  13.       PUSH        DS             ;Save the caller's registers
  14.       PUSH        BX
  15.       PUSH      DX
  16. ;
  17. ;  Initialize the data segment address.
  18. ;
  19.       MOV        BX,DATA
  20.       MOV       DS,BX
  21. ;
  22. ;  This is the look-up procedure.
  23. ;
  24.       MOV        DL,AL         ;Save the input value in DL
  25.       LEA        BX,ASCII         ;Look up the ASCII value
  26.       XLAT        ASCII
  27.       MOV        CH,AL         ; and load it into CH
  28.       MOV        AL,DL
  29.       LEA        BX,BCD         ;Look up the BCD value
  30.       XLAT        BCD
  31.       MOV        CL,AL         ; and load it into CL
  32.       MOV        AL,DL
  33.       LEA        BX,EBCDIC         ;Look up the EBCDIC value
  34.       XLAT        EBCDIC
  35.       MOV        AH,AL         ; and load it into AH
  36.       MOV       AL,DL         ;Restore registers
  37.       POP        DX
  38.       POP        BX
  39.       POP        DS
  40.       RET                 ; and exit
  41. CONV_HEX  ENDP
  42. OUR_CODE  ENDS
  43.           END   CONV_HEX
  44.